package com.xian.d10_api_stringbuilder;

/**
 * 1、为什么拼接、反转字符串建议使用StringBuilder?
 * String :内容是不可变的、拼接字符串性能差。
 * stringBuilder:内容是可变的、拼接字符串性能好、代码优雅。
 *
 * ●定义字符串使用String
 * 拼接、修改等操作字符串使用StringBuilder
 *
 * 目标:学会使用StringBuilder操作字符串，最终还需要知道它性能好的原因
 */
public class StringBuilderDemo1 {
    public static void main(String[] args) {
        StringBuilder sb = new StringBuilder();  // ""
        sb.append("a");
        sb.append("b");
        sb.append("c");
        sb.append(1);
        sb.append(false);
        sb.append(6.666);
        System.out.println(sb);


        StringBuilder sb1 = new StringBuilder();
        //支持链式编程
        sb1.append("a").append(123).append("asghj").append(true);
        System.out.println(sb1);

        //反转
        sb1.reverse().append("110");
        System.out.println(sb1);

        System.out.println(sb1.length());

        //注意:StringBuilder只是拼接字符串的手段:效率好。
        //最终的目的还是要恢复成String类型。

        StringBuilder sb2 = new StringBuilder();
        sb2.append("123").append("456");

        //恢复成String
        String res = sb2.toString();
        check(res);
    }

    public static void check(String data){
        System.out.println(data);
    }
}
